﻿from inter_llm import InterLMM
import json
import traceback
import re


def get_json_from_text(text):
    # 使用正则表达式匹配 ```json 和 ``` 之间的内容
    match = re.search(r'```json\s*(.*?)\s*```', text, re.DOTALL)

    if match:
        # 提取匹配到的内容
        json_content = match.group(1).strip()
        return json_content
    else:
        # 如果没有匹配到，则直接返回原始文本
        return text


interlmm = InterLMM()


def get_org_prop(org_name, area_name):
    question = f"""
从机关、单位名称中提取下列信息：
1）去掉地域名称的机关、单位名称。
   例如：克州农村合作经济发展指导中心， 去掉地域后名称为 农村合作经济发展指导中心
2) 去掉机构的分支、部门信息。
   例如： 中石油新疆销售有限公司伊犁分公司，去掉分支、部门后为 中石油新疆销售有限公司
3）机构性质：党委、政府和两院、事业单位、人大、政协、团体、企业
（人员检察院、人民法院、纪委监察机关算入政府和两院）

- 输入信息：
  1）机构名称：{org_name}
  2）机构所在地域：{area_name}

- 输出格式：json，不输出json以外的文字、信息；json字段包括 org_name（机构名称）、nature（机构性质）。示例如下

{{
 "org_name":"机构名称",
 "nature":"机构性质"
}}"""
    try:
        response = interlmm.ask_single(question)
        response = get_json_from_text(response)
        sens_result = json.loads(response)
        print(f"{org_name} and {area_name} answer is {sens_result}")
        return sens_result
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
        return {"nature": "", "org_name": ""}
    return None


if __name__ == "__main__":
    try:
        org_prop = get_org_prop('博尔塔拉蒙古自治州行政服务中心', '乌鲁木齐市水磨沟区')
        print(f'{org_prop["org_name"]}, {org_prop["nature"]}')
    except Exception as e:
        print(f"An unexpected error occurred: {e}")
        traceback.print_stack()
        print('error:', e)
